﻿using System;
using System.Collections.Generic;
using System.IO;

// Token: 0x020002D5 RID: 725
[Serializable]
public abstract class CharFileInfoCoordinate : global::BlockControlBase
{
	// Token: 0x06001196 RID: 4502 RVA: 0x0008F974 File Offset: 0x0008DB74
	public CharFileInfoCoordinate() : base("コーディネート情報", 1)
	{
	}

	// Token: 0x06001197 RID: 4503 RVA: 0x0008F990 File Offset: 0x0008DB90
	public bool SetInfo(global::CharDefine.CoordinateType type, global::CharFileInfoClothes info)
	{
		return this.dictClothesInfo[type].Copy(info);
	}

	// Token: 0x06001198 RID: 4504 RVA: 0x0008F9A4 File Offset: 0x0008DBA4
	public global::CharFileInfoClothes GetInfo(global::CharDefine.CoordinateType type)
	{
		global::CharFileInfoClothes result = null;
		this.dictClothesInfo.TryGetValue(type, out result);
		return result;
	}

	// Token: 0x06001199 RID: 4505 RVA: 0x0008F9C4 File Offset: 0x0008DBC4
	public override byte[] SaveBytes()
	{
		byte[] result;
		using (MemoryStream memoryStream = new MemoryStream())
		{
			using (BinaryWriter binaryWriter = new BinaryWriter(memoryStream))
			{
				this.SaveSub(binaryWriter);
				result = memoryStream.ToArray();
			}
		}
		return result;
	}

	// Token: 0x0600119A RID: 4506 RVA: 0x0008FA34 File Offset: 0x0008DC34
	public override bool LoadBytes(byte[] data, int coordinateVer)
	{
		bool result;
		using (MemoryStream memoryStream = new MemoryStream(data))
		{
			using (BinaryReader binaryReader = new BinaryReader(memoryStream))
			{
				result = this.LoadSub(binaryReader, coordinateVer);
			}
		}
		return result;
	}

	// Token: 0x0600119B RID: 4507
	public abstract bool SaveSub(BinaryWriter bw);

	// Token: 0x0600119C RID: 4508
	public abstract bool LoadSub(BinaryReader br, int coordinateVer);

	// Token: 0x040017BA RID: 6074
	public int coordinateLoadVersion;

	// Token: 0x040017BB RID: 6075
	public Dictionary<global::CharDefine.CoordinateType, global::CharFileInfoClothes> dictClothesInfo = new Dictionary<global::CharDefine.CoordinateType, global::CharFileInfoClothes>();
}
